package com.example.taskscheduling_quartz.task;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 自定义Quartz任务类
 * 继承Spring提供的QuartzJobBean，实现Quartz的Job接口功能
 * 用于定义具体的定时任务逻辑，由Quartz调度器按照配置的触发规则执行
 */
public class MyTask extends QuartzJobBean {

    // 日期时间格式化器，指定输出格式为"年-月-日 时:分:秒"
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

    /**
     * 任务执行的核心方法
     * 当Quartz调度器触发任务时，会自动调用此方法执行具体业务逻辑
     *
     * @param context 任务执行上下文对象，包含任务相关的元数据和配置信息
     *                可通过context获取JobDetail、Trigger、Scheduler等对象
     * @throws JobExecutionException 当任务执行过程中发生异常时抛出
     */
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        // 任务具体逻辑：打印当前时间，模拟实际业务操作
        // 实际应用中可在此处编写需要定时执行的业务代码，如数据同步、报表生成等
        System.out.println("MyTask执行，当前时间为：" + LocalDateTime.now().format(dtf));
    }
}